home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d880.lha / Oberon / O3Demo2.lzh / Definitions / Dos.def < prev    next >
Text File  |  1993-01-15  |  30KB  |  1,021 lines

  1. DEFINITION Dos;
  2.  
  3. IMPORT
  4.   e := Exec,
  5.   t := Timer,
  6.   u := Utility;
  7.  
  8. CONST
  9.   dosName = "dos.library";
  10.   DOSTRUE = -1;
  11.   DOSFALSE = 0;
  12.   oldFile = 1005;
  13.   newFile = 1006;
  14.   readWrite = 1004;
  15.   beginning = -1;
  16.   current = 0;
  17.   end = 1;
  18.   bitsPerByte = 8;
  19.   bytesPerLong = 4;
  20.   bitsPerLong = 32;
  21.   maxInt = 7FFFFFFFH;
  22.   minInt = 80000000H;
  23.   sharedLock = -2;
  24.   accessRead = -2;
  25.   exclusiveLock = -1;
  26.   accessWrite = -1;
  27.  
  28. TYPE
  29.   DatePtr = UNTRACED POINTER TO Date;
  30.   FileInfoBlockPtr = UNTRACED POINTER TO FileInfoBlock;
  31.   InfoDataPtr = UNTRACED POINTER TO InfoData;
  32.   DateTimePtr = UNTRACED POINTER TO DateTime;
  33.   AnchorPathPtr = UNTRACED POINTER TO AnchorPath;
  34.   AChainPtr = UNTRACED POINTER TO AChain;
  35.   ProcessPtr = UNTRACED POINTER TO Process;
  36.   DosPacketPtr = UNTRACED POINTER TO DosPacket;
  37.   StandardPacketPtr = UNTRACED POINTER TO StandardPacket;
  38.   ErrorStringPtr = UNTRACED POINTER TO ErrorString;
  39.   DosLibraryPtr = UNTRACED POINTER TO DosLibrary;
  40.   RootNodePtr = UNTRACED POINTER TO RootNode;
  41.   CliProcListPtr = UNTRACED POINTER TO CliProcList;
  42.   AssignListPtr = UNTRACED POINTER TO AssignList;
  43.   DevProcPtr = UNTRACED POINTER TO DevProc;
  44.   ExAllDataPtr = UNTRACED POINTER TO ExAllData;
  45.   ExAllControlPtr = UNTRACED POINTER TO ExAllControl;
  46.   DeviceNodePtr = UNTRACED POINTER TO DeviceNode;
  47.   NotifyMessagePtr = UNTRACED POINTER TO NotifyMessage;
  48.   NotifyRequestPtr = UNTRACED POINTER TO NotifyRequest;
  49.   CSourcePtr = UNTRACED POINTER TO CSource;
  50.   RDArgsPtr = UNTRACED POINTER TO RDArgs;
  51.   RecordLockPtr = UNTRACED POINTER TO RecordLock;
  52.   LocalVarPtr = UNTRACED POINTER TO LocalVar;
  53.   DeviceListAPtr = UNTRACED POINTER TO DeviceList;
  54.   SegmentPtr = UNTRACED POINTER TO Segment;
  55.   DosListNodePtr = UNTRACED POINTER TO DosListNode;
  56.   CommandLineInterfaceAPtr = UNTRACED POINTER TO CommandLineInterface;
  57.   FileLockPtr = BPOINTER TO FileLock;
  58.   FileHandlePtr = BPOINTER TO FileHandle;
  59.   DosEnvecPtr = BPOINTER TO DosEnvec;
  60.   DeviceListPtr = BPOINTER TO DeviceList;
  61.   DevInfoPtr = BPOINTER TO DevInfo;
  62.   DosListPtr = BPOINTER TO DosList;
  63.   CommandLineInterfacePtr = BPOINTER TO CommandLineInterface;
  64.   TaskArrayPtr = BPOINTER TO TaskArray;
  65.   DosInfoPtr = BPOINTER TO DosInfo;
  66.   FileSysStartupMsgPtr = BPOINTER TO FileSysStartupMsg;
  67.   PathLockPtr = BPOINTER TO PathLock;
  68.   Date = STRUCT 
  69.     days : LONGINT;
  70.     minute : LONGINT;
  71.     tick : LONGINT;
  72.   END;
  73.  
  74. CONST
  75.   ticksPerSecond = 50;
  76.  
  77. TYPE
  78.   FileInfoBlock = STRUCT 
  79.     diskKey : LONGINT;
  80.     dirEntryType : LONGINT;
  81.     fileName : ARRAY 108 OF CHAR;
  82.     protection : LONGSET;
  83.     entryType : LONGINT;
  84.     size : LONGINT;
  85.     numBlock : LONGINT;
  86.     date : Date;
  87.     comment : ARRAY 80 OF CHAR;
  88.     reserved : ARRAY 36 OF CHAR;
  89.   END;
  90.  
  91. CONST
  92.   script = 6;
  93.   pure = 5;
  94.   archive = 4;
  95.   readProt = 3;
  96.   writeProt = 2;
  97.   execute = 1;
  98.   delete = 0;
  99.   faultMax = 82;
  100.  
  101. TYPE
  102.   BPTR = e.BPTR;
  103.   BSTR = BPOINTER TO e.STRING;
  104.  
  105. TYPE
  106.   InfoData = STRUCT 
  107.     numSoftErrors : LONGINT;
  108.     unitNumber : LONGINT;
  109.     diskState : LONGINT;
  110.     numBlock : LONGINT;
  111.     numBlockUsed : LONGINT;
  112.     bytesPerBlock : LONGINT;
  113.     diskType : LONGINT;
  114.     volumeNode : DeviceListPtr;
  115.     inUse : LONGINT;
  116.   END;
  117.  
  118. CONST
  119.   writeProtect = 80;
  120.   validating = 81;
  121.   validated = 82;
  122.   noDiskPresent = -1;
  123.   unreadableDisk = sys.VAL(LONGINT, 'BAD\o');
  124.   dosDisk = sys.VAL(LONGINT, 'DOS\o');
  125.   ffsDisk = sys.VAL(LONGINT, 'DOS\x01');
  126.   notReallyDos = sys.VAL(LONGINT, 'NDOS');
  127.   kickStartDisk = sys.VAL(LONGINT, 'KICK');
  128.   msdosDisk = sys.VAL(LONGINT, 'MSD\o');
  129.   noFreeStore = 103;
  130.   taskTableFull = 105;
  131.   badTemplate = 114;
  132.   badNumber = 115;
  133.   requiredArgMissing = 116;
  134.   keyNeedsArg = 117;
  135.   tooManyArgs = 118;
  136.   unmatchedQuotes = 119;
  137.   lineTooLong = 120;
  138.   fileNotObject = 121;
  139.   invalidResidentLibrary = 122;
  140.   noDefaultDir = 201;
  141.   objectInUse = 202;
  142.   objectExists = 203;
  143.   dirNotFound = 204;
  144.   objectNotFound = 205;
  145.   badStreamName = 206;
  146.   objectTooLarge = 207;
  147.   actionNotKnown = 209;
  148.   invalidComponentName = 210;
  149.   invalidLock = 211;
  150.   objectWrongType = 212;
  151.   diskNotValidated = 213;
  152.   diskWriteProtected = 214;
  153.   renameAcrossDevices = 215;
  154.   directoryNotEmpty = 216;
  155.   tooManyLevels = 217;
  156.   deviceNotMounted = 218;
  157.   seekError = 219;
  158.   commentTooBig = 220;
  159.   diskFull = 221;
  160.   deleteProtected = 222;
  161.   writeProtected = 223;
  162.   readProtected = 224;
  163.   notADosDisk = 225;
  164.   noDisk = 226;
  165.   noMoreEntries = 232;
  166.   isSoftLink = 233;
  167.   objectLinked = 234;
  168.   badHunk = 235;
  169.   notImplemented = 236;
  170.   recordNotLocked = 240;
  171.   lockCollision = 241;
  172.   lockTimeOut = 242;
  173.   unLockError = 243;
  174.   ok = 0;
  175.   warn = 5;
  176.   error = 10;
  177.   fail = 20;
  178.   ctrlC = 12;
  179.   ctrlD = 13;
  180.   ctrlE = 14;
  181.   ctrlF = 15;
  182.   same = 0;
  183.   sameHandler = 1;
  184.   different = -1;
  185.   changeLock = 0;
  186.   changeFH = 1;
  187.   hard = 0;
  188.   soft = 1;
  189.   equal = -2;
  190.   itemError = -1;
  191.   nothing = 0;
  192.   unQuoted = 1;
  193.   quoted = 2;
  194.   fileHandle = 0;
  195.   exAllControl = 1;
  196.   fib = 2;
  197.   stdpkt = 3;
  198.   cli = 4;
  199.   rdArgs = 5;
  200.  
  201. CONST
  202.   lenDatString = 16;
  203.  
  204. TYPE
  205.   DatString = ARRAY 16 OF CHAR;
  206.   DatStringPtr = UNTRACED POINTER TO DatString;
  207.   DateTime = STRUCT (stamp : Date) 
  208.     format : SHORTINT;
  209.     flags : SHORTSET;
  210.     strDay : DatStringPtr;
  211.     strDate : DatStringPtr;
  212.     strTime : DatStringPtr;
  213.   END;
  214.  
  215. CONST
  216.   subst = 0;
  217.   future = 1;
  218.   formatDos = 0;
  219.   formatInt = 1;
  220.   formatUSA = 2;
  221.   formatCDN = 3;
  222.   formatMax = formatCDN;
  223.  
  224. TYPE
  225.   AnchorPath = STRUCT 
  226.     base : AChainPtr;
  227.     last : AChainPtr;
  228.     breakBits : LONGSET;
  229.     foundBreak : LONGSET;
  230.     flags : SHORTSET;
  231.     reserved : e.BYTE;
  232.     strLen : INTEGER;
  233.     info : FileInfoBlock;
  234.     buf : e.STRING;
  235.   END;
  236.  
  237. CONST
  238.   doWild = 0;
  239.   itsWild = 1;
  240.   doDir = 2;
  241.   didDir = 3;
  242.   noMemErr = 4;
  243.   doDot = 5;
  244.   dirChanged = 6;
  245.  
  246. TYPE
  247.   AChain = STRUCT 
  248.     child : AChainPtr;
  249.     parent : AChainPtr;
  250.     lock : FileLockPtr;
  251.     info : FileInfoBlock;
  252.     flags : SHORTSET;
  253.     string : e.STRING;
  254.   END;
  255.  
  256. CONST
  257.   patternBit = 0;
  258.   examinedBit = 1;
  259.   completed = 2;
  260.   allBit = 3;
  261.   single = 4;
  262.   pAny = 80H;
  263.   pSingle = 81H;
  264.   pOrStart = 82H;
  265.   pOrNext = 83H;
  266.   pOrEnd = 84H;
  267.   pNot = 85H;
  268.   pNotEnd = 86H;
  269.   pNotClass = 87H;
  270.   pClass = 88H;
  271.   pRepBeg = 89H;
  272.   pRepEnd = 8AH;
  273.   pStop = 8BH;
  274.   complexBit = 1;
  275.   examineBit = 2;
  276.   bufferOverflow = 303;
  277.   break = 304;
  278.   notExecutable = 305;
  279.  
  280. TYPE
  281.   ProcessId = e.MsgPortPtr;
  282.   Process = STRUCT (task : e.Task) 
  283.     msgPort : e.MsgPort;
  284.     pad : INTEGER;
  285.     segList : e.BPTR;
  286.     stackSize : LONGINT;
  287.     globVec : e.APTR;
  288.     taskNum : LONGINT;
  289.     stackBase : e.BPTR;
  290.     result2 : LONGINT;
  291.     currentDir : FileLockPtr;
  292.     cis : FileHandlePtr;
  293.     cos : FileHandlePtr;
  294.     consoleTask : ProcessId;
  295.     fileSystemTask : ProcessId;
  296.     cli : CommandLineInterfacePtr;
  297.     returnAddr : e.APTR;
  298.     pktWait : e.APTR;
  299.     windowPtr : e.APTR;
  300.     homeDir : FileLockPtr;
  301.     flags : LONGSET;
  302.     exitCode : e.PROC;
  303.     exitData : LONGINT;
  304.     arguments : e.STRPTR;
  305.     localVars : e.MinList;
  306.     shellPrivate : LONGINT;
  307.     ces : FileHandlePtr;
  308.   END;
  309.  
  310. CONST
  311.   freeSegList = 0;
  312.   freeCurrDir = 1;
  313.   freeCLI = 2;
  314.   closeInput = 3;
  315.   closeOutput = 4;
  316.   freeArgs = 5;
  317.  
  318. TYPE
  319.   FileHandle = STRUCT 
  320.     link : e.MessagePtr;
  321.     port : e.MsgPortPtr;
  322.     type : ProcessId;
  323.     buf : LONGINT;
  324.     pos : LONGINT;
  325.     end : LONGINT;
  326.     func1 : LONGINT;
  327.     func2 : LONGINT;
  328.     func3 : LONGINT;
  329.     arg1 : LONGINT;
  330.     arg2 : LONGINT;
  331.   END;
  332.   DosPacket = STRUCT 
  333.     link : e.MessagePtr;
  334.     port : e.MsgPortPtr;
  335.     type : LONGINT;
  336.     res1 : LONGINT;
  337.     res2 : LONGINT;
  338.     arg1 : LONGINT;
  339.     arg2 : LONGINT;
  340.     arg3 : LONGINT;
  341.     arg4 : LONGINT;
  342.     arg5 : LONGINT;
  343.     arg6 : LONGINT;
  344.     arg7 : LONGINT;
  345.   END;
  346.   StandardPacket = STRUCT (msg : e.Message) 
  347.     pkt : DosPacket;
  348.   END;
  349.  
  350. CONST
  351.   nil = 0;
  352.   startup = 0;
  353.   getBlock = 2;
  354.   setMap = 4;
  355.   die = 5;
  356.   event = 6;
  357.   currentVolume = 7;
  358.   locateObject = 8;
  359.   renameDisk = 9;
  360.   write = ORD('W');
  361.   read = ORD('R');
  362.   freeLock = 15;
  363.   deleteObject = 16;
  364.   renameObject = 17;
  365.   moreCache = 18;
  366.   copyDir = 19;
  367.   waitChar = 20;
  368.   setProtect = 21;
  369.   createDir = 22;
  370.   examineObject = 23;
  371.   examineNext = 24;
  372.   diskInfo = 25;
  373.   info = 26;
  374.   flush = 27;
  375.   setComment = 28;
  376.   parent = 29;
  377.   timer = 30;
  378.   inhibit = 31;
  379.   diskType = 32;
  380.   diskChange = 33;
  381.   setDate = 34;
  382.   screenMode = 994;
  383.   readReturn = 1001;
  384.   writeReturn = 1002;
  385.   seek = 1008;
  386.   findUpdate = 1004;
  387.   findInput = 1005;
  388.   findOutput = 1006;
  389.   actionEnd = 1007;
  390.   setFileSize = 1022;
  391.   writeprotect = 1023;
  392.   sameLock = 40;
  393.   changeSignal = 995;
  394.   format = 1020;
  395.   makeLink = 1021;
  396.   readLink = 1024;
  397.   fhFromLock = 1026;
  398.   isFileSystem = 1027;
  399.   changeMode = 1028;
  400.   copyDirFH = 1030;
  401.   parentFH = 1031;
  402.   examineAll = 1033;
  403.   examineFH = 1034;
  404.   lockRecord = 2008;
  405.   freeRecord = 2009;
  406.   addNotify = 4097;
  407.   removeNotify = 4098;
  408.  
  409. TYPE
  410.   ErrorString = STRUCT 
  411.     nums : e.APTR;
  412.     strings : e.APTR;
  413.   END;
  414.   DosLibrary = STRUCT (lib : e.Library) 
  415.     root : RootNodePtr;
  416.     gv : e.APTR;
  417.     a2 : LONGINT;
  418.     a5 : LONGINT;
  419.     a6 : LONGINT;
  420.     errors : ErrorStringPtr;
  421.     timeReq : t.TimeRequestPtr;
  422.     utilityBase : e.LibraryPtr;
  423.   END;
  424.   TaskArray = STRUCT 
  425.     maxCLI : LONGINT;
  426.     cli : ARRAY 10000000H OF ProcessId;
  427.   END;
  428.   RootNode = STRUCT 
  429.     taskArray : TaskArrayPtr;
  430.     consoleSegment : e.BPTR;
  431.     time : Date;
  432.     restartSeg : e.BPTR;
  433.     info : DosInfoPtr;
  434.     fileHandlerSegment : e.BPTR;
  435.     cliList : e.MinList;
  436.     bootProc : ProcessId;
  437.     shellSegment : e.BPTR;
  438.     flags : LONGSET;
  439.   END;
  440.  
  441. CONST
  442.   wildStar = 24;
  443.   private1 = 1;
  444.  
  445. TYPE
  446.   CliProcList = STRUCT (node : e.MinNode) 
  447.     first : LONGINT;
  448.     array : UNTRACED POINTER TO ARRAY 1FFFFFFFH OF ProcessId;
  449.   END;
  450.   DosInfo = STRUCT 
  451.     mcName : BSTR;
  452.     devInfo : DevInfoPtr;
  453.     devices : e.BPTR;
  454.     handlers : e.BPTR;
  455.     nethand : ProcessId;
  456.     devLock : e.SignalSemaphore;
  457.     entryLock : e.SignalSemaphore;
  458.     deleteLock : e.SignalSemaphore;
  459.   END;
  460.   Segment = STRUCT 
  461.     next : e.BPTR;
  462.     uc : LONGINT;
  463.     seg : e.BPTR;
  464.     name : ARRAY 4 OF CHAR;
  465.   END;
  466.  
  467. CONST
  468.   cmdSystem = -1;
  469.   cmdInternal = -2;
  470.   cmdDisabled = -999;
  471.  
  472. TYPE
  473.   PathLock = STRUCT 
  474.     next : PathLockPtr;
  475.     lock : FileLockPtr;
  476.   END;
  477.   CommandLineInterface = STRUCT 
  478.     result2 : LONGINT;
  479.     setName : BSTR;
  480.     commandDir : PathLockPtr;
  481.     returnCode : LONGINT;
  482.     commandName : BSTR;
  483.     failLevel : LONGINT;
  484.     prompt : BSTR;
  485.     standardInput : FileHandlePtr;
  486.     currentInput : FileHandlePtr;
  487.     commandFile : BSTR;
  488.     interactive : LONGINT;
  489.     background : LONGINT;
  490.     currentOutput : FileHandlePtr;
  491.     defaultStack : LONGINT;
  492.     standardOutput : FileHandlePtr;
  493.     module : e.BPTR;
  494.   END;
  495.   DosListNode = STRUCT 
  496.   END;
  497.   DeviceList = STRUCT 
  498.     next : DeviceListPtr;
  499.     type : LONGINT;
  500.     task : ProcessId;
  501.     lock : FileLockPtr;
  502.     volumeDate : Date;
  503.     lockList : FileLockPtr;
  504.     diskType : LONGINT;
  505.     unused : LONGINT;
  506.     name : BSTR;
  507.   END;
  508.   DevInfo = STRUCT 
  509.     next : DevInfoPtr;
  510.     type : LONGINT;
  511.     task : ProcessId;
  512.     lock : FileLockPtr;
  513.     handler : BSTR;
  514.     stackSize : LONGINT;
  515.     priority : LONGINT;
  516.     startup : FileSysStartupMsgPtr;
  517.     segList : e.BPTR;
  518.     globVec : e.BPTR;
  519.     name : BSTR;
  520.   END;
  521.   DosList = STRUCT 
  522.     next : DevInfoPtr;
  523.     type : LONGINT;
  524.     task : ProcessId;
  525.     lock : FileLockPtr;
  526.     assignName : e.STRPTR;
  527.     list : AssignListPtr;
  528.     unused : ARRAY 4 OF LONGINT;
  529.     name : BSTR;
  530.   END;
  531.   AssignList = STRUCT 
  532.     next : AssignListPtr;
  533.     lock : FileLockPtr;
  534.   END;
  535.  
  536. CONST
  537.   device = 0;
  538.   directory = 1;
  539.   volume = 2;
  540.   late = 3;
  541.   nonBinding = 4;
  542.   private = -1;
  543.  
  544. TYPE
  545.   DevProc = STRUCT 
  546.     port : e.MsgPortPtr;
  547.     lock : FileLockPtr;
  548.     flags : LONGSET;
  549.     devNode : DosListNodePtr;
  550.   END;
  551.  
  552. CONST
  553.   unLock = 0;
  554.   assign = 1;
  555.   devices = 2;
  556.   volumes = 3;
  557.   assigns = 4;
  558.   entry = 5;
  559.   ldDelete = 6;
  560.   dosListRead = 0;
  561.   dosListWrite = 1;
  562.   all = LONGSET{devices, volumes, assigns};
  563.  
  564. TYPE
  565.   FileLock = STRUCT 
  566.     link : FileLockPtr;
  567.     key : LONGINT;
  568.     access : LONGINT;
  569.     task : ProcessId;
  570.     volume : DeviceListPtr;
  571.   END;
  572.  
  573. CONST
  574.   reportStream = 0;
  575.   reportTask = 1;
  576.   reportLock = 2;
  577.   reportVolume = 3;
  578.   reportInsert = 4;
  579.   diskError = 296;
  580.   abortBusy = 288;
  581.   runExecute = -1;
  582.   runSystem = -2;
  583.   runSystemAsynch = -3;
  584.   root = 1;
  585.   userDir = 2;
  586.   softLink = 3;
  587.   linkDir = 4;
  588.   file = -3;
  589.   linkFile = -4;
  590.   hunkUnit = 999;
  591.   hunkName = 1000;
  592.   hunkCode = 1001;
  593.   hunkData = 1002;
  594.   hunkBSS = 1003;
  595.   hunkReloc32 = 1004;
  596.   hunkReloc16 = 1005;
  597.   hunkReloc8 = 1006;
  598.   hunkExt = 1007;
  599.   hunkSymbol = 1008;
  600.   hunkDebug = 1009;
  601.   hunkEnd = 1010;
  602.   hunkHeader = 1011;
  603.   hunkOverlay = 1013;
  604.   hunkBreak = 1014;
  605.   hunkDRel32 = 1015;
  606.   hunkDRel16 = 1016;
  607.   hunkDRel8 = 1017;
  608.   hunkLib = 1018;
  609.   hunkIndex = 1019;
  610.   extSymb = 0;
  611.   extDef = 1;
  612.   extAbs = 2;
  613.   extRes = 3;
  614.   extRef32 = 129;
  615.   extCommon = 130;
  616.   extRef16 = 131;
  617.   extRef8 = 132;
  618.   extDExt32 = 133;
  619.   extDExt16 = 134;
  620.   extDExt8 = 135;
  621.   sysDummy = u.user + 32;
  622.   sysInput = sysDummy + 1;
  623.   sysOutput = sysDummy + 2;
  624.   sysAsynch = sysDummy + 3;
  625.   sysUserShell = sysDummy + 4;
  626.   sysCustomShell = sysDummy + 5;
  627.   npDummy = u.user + 1000;
  628.   npSeglist = npDummy + 1;
  629.   npFreeSeglist = npDummy + 2;
  630.   npEntry = npDummy + 3;
  631.   npInput = npDummy + 4;
  632.   npOutput = npDummy + 5;
  633.   npCloseInput = npDummy + 6;
  634.   npCloseOutput = npDummy + 7;
  635.   npError = npDummy + 8;
  636.   npCloseError = npDummy + 9;
  637.   npCurrentDir = npDummy + 10;
  638.   npStackSize = npDummy + 11;
  639.   npName = npDummy + 12;
  640.   npPriority = npDummy + 13;
  641.   npConsoleTask = npDummy + 14;
  642.   npWindowPtr = npDummy + 15;
  643.   npHomeDir = npDummy + 16;
  644.   npCopyVars = npDummy + 17;
  645.   npCli = npDummy + 18;
  646.   npPath = npDummy + 19;
  647.   npCommandName = npDummy + 20;
  648.   npArguments = npDummy + 21;
  649.   npNotifyOnDeath = npDummy + 22;
  650.   npSynchronous = npDummy + 23;
  651.   npExitCode = npDummy + 24;
  652.   npExitData = npDummy + 25;
  653.   adoDummy = u.user + 2000;
  654.   adoFHMode = adoDummy + 1;
  655.   adoDirLen = adoDummy + 2;
  656.   adoCommNameLen = adoDummy + 3;
  657.   adoCommFileLen = adoDummy + 4;
  658.   adoPromptLen = adoDummy + 5;
  659.   name = 1;
  660.   type = 2;
  661.   size = 3;
  662.   protection = 4;
  663.   date = 5;
  664.   comment = 6;
  665.  
  666. TYPE
  667.   ExAllData = STRUCT 
  668.     next : ExAllDataPtr;
  669.     name : e.STRPTR;
  670.     type : LONGINT;
  671.     size : LONGINT;
  672.     prot : LONGSET;
  673.     days : LONGINT;
  674.     mins : LONGINT;
  675.     ticks : LONGINT;
  676.     comment : e.STRPTR;
  677.   END;
  678.   ExAllControl = STRUCT 
  679.     entries : LONGINT;
  680.     lastKey : LONGINT;
  681.     matchString : e.STRPTR;
  682.     matchFunc : u.HookPtr;
  683.   END;
  684.   DosEnvec = STRUCT 
  685.     tableSize : LONGINT;
  686.     sizeBlock : LONGINT;
  687.     secOrg : LONGINT;
  688.     surfaces : LONGINT;
  689.     sectorPerBlock : LONGINT;
  690.     blocksPerTrack : LONGINT;
  691.     reserved : LONGINT;
  692.     preAlloc : LONGINT;
  693.     interleave : LONGINT;
  694.     lowCyl : LONGINT;
  695.     highCyl : LONGINT;
  696.     numBuffers : LONGINT;
  697.     bufMemType : LONGINT;
  698.     maxTransfer : LONGINT;
  699.     mask : LONGSET;
  700.     bootPri : LONGINT;
  701.     dosType : LONGINT;
  702.     baud : LONGINT;
  703.     control : LONGINT;
  704.     bootBlocks : LONGINT;
  705.   END;
  706.  
  707. CONST
  708.   tableSize = 0;
  709.   sizeBlock = 1;
  710.   secOrg = 2;
  711.   numHeads = 3;
  712.   secsPerBlk = 4;
  713.   blksPerTrack = 5;
  714.   reservedBlks = 6;
  715.   preFac = 7;
  716.   interLeave = 8;
  717.   lowCyl = 9;
  718.   upperCyl = 10;
  719.   numBuffers = 11;
  720.   memBufType = 12;
  721.   bufMemType = 12;
  722.   maxTransfer = 13;
  723.   mask = 14;
  724.   bootPri = 15;
  725.   dosType = 16;
  726.   baud = 17;
  727.   control = 18;
  728.   bootBlocks = 19;
  729.  
  730. TYPE
  731.   FileSysStartupMsg = STRUCT 
  732.     unit : LONGINT;
  733.     device : BSTR;
  734.     environ : DosEnvecPtr;
  735.     flags : LONGSET;
  736.   END;
  737.   DeviceNode = STRUCT 
  738.     next : DeviceNodePtr;
  739.     type : LONGINT;
  740.     task : ProcessId;
  741.     lock : FileLockPtr;
  742.     handler : BSTR;
  743.     stackSize : LONGINT;
  744.     priority : LONGINT;
  745.     startup : FileSysStartupMsgPtr;
  746.     segList : e.BPTR;
  747.     globalVec : e.BPTR;
  748.     name : BSTR;
  749.   END;
  750.  
  751. CONST
  752.   class = 40000000H;
  753.   code = 1234H;
  754.  
  755. TYPE
  756.   NotifyMessage = STRUCT (execMessage : e.Message) 
  757.     class : LONGINT;
  758.     code : INTEGER;
  759.     nReq : NotifyRequestPtr;
  760.   END;
  761.   NotifyRequest = STRUCT 
  762.     name : e.STRPTR;
  763.     fullName : e.STRPTR;
  764.     userData : LONGINT;
  765.     flags : LONGSET;
  766.     task : e.TaskPtr;
  767.     signalNum : SHORTINT;
  768.     reserved : ARRAY 4 OF LONGINT;
  769.     msgCount : LONGINT;
  770.     handler : e.MsgPortPtr;
  771.   END;
  772.  
  773. CONST
  774.   sendMessage = 0;
  775.   sendSignal = 1;
  776.   waitReply = 3;
  777.   notifyInitial = 4;
  778.   magic = 31;
  779.   handlerFlags = LONGSET{16.GSET..31};
  780.  
  781. TYPE
  782.   CSource = STRUCT 
  783.     buffer : UNTRACED POINTER TO ARRAY 1FFFFFFFH OF CHAR;
  784.     length : LONGINT;
  785.     curChr : LONGINT;
  786.   END;
  787.   RDArgs = STRUCT 
  788.     source : CSource;
  789.     daList : LONGINT;
  790.     buffer : e.STRPTR;
  791.     bufSiz : LONGINT;
  792.     extHelp : e.STRPTR;
  793.     flags : LONGSET;
  794.   END;
  795.  
  796. CONST
  797.   stdIn = 0;
  798.   noAlloc = 1;
  799.   noPrompt = 2;
  800.   maxTemplateItems = 100;
  801.   maxMultiArgs = 128;
  802.   recExclusive = 0;
  803.   recExclusiveImmed = 1;
  804.   recShared = 2;
  805.   recSharedImmed = 3;
  806.  
  807. TYPE
  808.   RecordLock = STRUCT 
  809.     fh : FileHandlePtr;
  810.     offset : LONGINT;
  811.     lenght : LONGINT;
  812.     mode : LONGINT;
  813.   END;
  814.  
  815. CONST
  816.   bufLine = 0;
  817.   bufFull = 1;
  818.   bufNone = 2;
  819.  
  820. TYPE
  821.   LocalVar = STRUCT (node : e.Node) 
  822.     flags : SET;
  823.     value : e.STRPTR;
  824.     len : LONGINT;
  825.   END;
  826.  
  827. CONST
  828.   var = 0;
  829.   alias = 1;
  830.   ingnore = -80H;
  831.   globalOnly = 8;
  832.   localOnly = 9;
  833.   binaryVar = 10;
  834.  
  835. VAR
  836.   dos : DosLibraryPtr;
  837.  
  838. PROCEDURE Open(name: ARRAY OF CHAR; accessMode: LONGINT): FileHandlePtr;
  839. PROCEDURE Close(file: FileHandlePtr): BOOLEAN;
  840. PROCEDURE OldClose(file: FileHandlePtr);
  841. PROCEDURE Read(file: FileHandlePtr; buffer: ARRAY OF sys.BYTE; length: LONGINT): LONGINT;
  842. PROCEDURE Write(file: FileHandlePtr; buffer: ARRAY OF sys.BYTE; length: LONGINT): LONGINT;
  843. PROCEDURE Input(): FileHandlePtr;
  844. PROCEDURE Output(): FileHandlePtr;
  845. PROCEDURE Seek(file: FileHandlePtr; position: LONGINT; offset: LONGINT): LONGINT;
  846. PROCEDURE DeleteFile(name: ARRAY OF CHAR): BOOLEAN;
  847. PROCEDURE Rename(oldName: ARRAY OF CHAR; newName: ARRAY OF CHAR): BOOLEAN;
  848. PROCEDURE Lock(name: ARRAY OF CHAR; type: LONGINT): FileLockPtr;
  849. PROCEDURE UnLock(lock: FileLockPtr);
  850. PROCEDURE DupLock(lock: FileLockPtr): FileLockPtr;
  851. PROCEDURE Examine(lock: FileLockPtr; VAR info: FileInfoBlock): BOOLEAN;
  852. PROCEDURE ExNext(lock: FileLockPtr; VAR info: FileInfoBlock): BOOLEAN;
  853. PROCEDURE Info(lock: FileLockPtr; VAR info: InfoData): BOOLEAN;
  854. PROCEDURE CreateDir(name: ARRAY OF CHAR): FileLockPtr;
  855. PROCEDURE CurrentDir(lock: FileLockPtr): FileLockPtr;
  856. PROCEDURE IoErr(): LONGINT;
  857. PROCEDURE CreateProc(name: ARRAY OF CHAR; pri: LONGINT; segList: e.BPTR; stackSize: LONGINT): ProcessId;
  858. PROCEDURE Exit(returnCode: LONGINT);
  859. PROCEDURE LoadSeg(name: ARRAY OF CHAR): e.BPTR;
  860. PROCEDURE UnLoadSeg(segList: e.BPTR);
  861. PROCEDURE DeviceProc(name: ARRAY OF CHAR): ProcessId;
  862. PROCEDURE SetComment(name: ARRAY OF CHAR; comment: ARRAY OF CHAR): BOOLEAN;
  863. PROCEDURE SetProtection(name: ARRAY OF CHAR; protect: LONGSET): BOOLEAN;
  864. PROCEDURE DateStamp(VAR date: Date);
  865. PROCEDURE Delay(timeout: LONGINT);
  866. PROCEDURE WaitForChar(file: FileHandlePtr; timeout: LONGINT): BOOLEAN;
  867. PROCEDURE ParentDir(lock: FileLockPtr): FileLockPtr;
  868. PROCEDURE IsInteractive(file: FileHandlePtr): BOOLEAN;
  869. PROCEDURE Execute(string: ARRAY OF CHAR; file: FileHandlePtr; file2: FileHandlePtr): BOOLEAN;
  870. PROCEDURE AllocDosObject(type: LONGINT; tags: ARRAY OF u.TagItem): e.APTR;
  871. PROCEDURE AllocDosObjectTags(type: LONGINT; tag1..: u.Tag): e.APTR;
  872. PROCEDURE FreeDosObject(type: LONGINT; ptr: e.APTR);
  873. PROCEDURE DoPkt0(port: ProcessId; action: LONGINT): LONGINT;
  874. PROCEDURE DoPkt1(port: ProcessId; action: LONGINT; arg1: LONGINT): LONGINT;
  875. PROCEDURE DoPkt2(port: ProcessId; action: LONGINT; arg1: LONGINT; arg2: LONGINT): LONGINT;
  876. PROCEDURE DoPkt3(port: ProcessId; action: LONGINT; arg1: LONGINT; arg2: LONGINT; arg3: LONGINT): LONGINT;
  877. PROCEDURE DoPkt4(port: ProcessId; action: LONGINT; arg1: LONGINT; arg2: LONGINT; arg3: LONGINT; arg4: LONGINT): LONGINT;
  878. PROCEDURE DoPkt(port: ProcessId; action: LONGINT; arg1: LONGINT; arg2: LONGINT; arg3: LONGINT; arg4: LONGINT; arg5: LONGINT): LONGINT;
  879. PROCEDURE SendPkt(VAR dp: DosPacket; port: ProcessId; replyport: e.MsgPortPtr);
  880. PROCEDURE WaitPkt(): DosPacketPtr;
  881. PROCEDURE ReplyPkt(dp: DosPacketPtr; res1: LONGINT; res2: LONGINT);
  882. PROCEDURE AbortPkt(port: ProcessId; pkt: DosPacketPtr);
  883. PROCEDURE LockRecord(fh: FileHandlePtr; offset: LONGINT; length: LONGINT; mode: LONGINT; timeout: LONGINT): BOOLEAN;
  884. PROCEDURE LockRecords(recArray: RecordLockPtr; timeout: LONGINT): BOOLEAN;
  885. PROCEDURE UnLockRecord(fh: FileHandlePtr; offset: LONGINT; length: LONGINT): BOOLEAN;
  886. PROCEDURE UnLockRecords(recArray: RecordLockPtr): BOOLEAN;
  887. PROCEDURE SelectInput(fh: FileHandlePtr): FileHandlePtr;
  888. PROCEDURE SelectOutput(fh: FileHandlePtr): FileHandlePtr;
  889. PROCEDURE FGetC(fh: FileHandlePtr): LONGINT;
  890. PROCEDURE FPutC(fh: FileHandlePtr; ch: LONGINT): LONGINT;
  891. PROCEDURE UnGetC(fh: FileHandlePtr; character: LONGINT): LONGINT;
  892. PROCEDURE FRead(fh: FileHandlePtr; block: ARRAY OF sys.BYTE; blocklen: LONGINT; number: LONGINT): LONGINT;
  893. PROCEDURE FWrite(fh: FileHandlePtr; block: ARRAY OF sys.BYTE; blocklen: LONGINT; number: LONGINT): LONGINT;
  894. PROCEDURE FGets(fh: FileHandlePtr; VAR buf: ARRAY OF CHAR; buflen: LONGINT): e.APTR;
  895. PROCEDURE FPuts(fh: FileHandlePtr; str: ARRAY OF CHAR): BOOLEAN;
  896. PROCEDURE VFWritef(fh: FileHandlePtr; format: ARRAY OF CHAR; argarray: ARRAY OF sys.BYTE): LONGINT;
  897. PROCEDURE FWritef(fh: FileHandlePtr; format: ARRAY OF CHAR; arg1..: e.APTR): LONGINT;
  898. PROCEDURE VFPrintf(fh: FileHandlePtr; format: ARRAY OF CHAR; argarray: ARRAY OF e.APTR): LONGINT;
  899. PROCEDURE FPrintf(fh: FileHandlePtr; format: ARRAY OF CHAR; arg1..: e.APTR): LONGINT;
  900. PROCEDURE Flush(fh: FileHandlePtr);
  901. PROCEDURE SetVBuf(fh: FileHandlePtr; VAR buff: ARRAY OF CHAR; type: LONGINT; size: LONGINT): LONGINT;
  902. PROCEDURE DupLockFromFH(fh: FileHandlePtr): FileLockPtr;
  903. PROCEDURE OpenFromLock(lock: FileLockPtr): FileHandlePtr;
  904. PROCEDURE ParentOfFH(fh: FileHandlePtr): FileLockPtr;
  905. PROCEDURE ExamineFH(fh: FileHandlePtr; VAR fib: FileInfoBlock): BOOLEAN;
  906. PROCEDURE SetFileDate(name: ARRAY OF CHAR; date: Date): BOOLEAN;
  907. PROCEDURE NameFromLock(lock: FileLockPtr; VAR buffer: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  908. PROCEDURE NameFromFH(fh: FileHandlePtr; VAR buffer: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  909. PROCEDURE SplitName(name: ARRAY OF CHAR; seperator: CHAR; buf: ARRAY OF CHAR; oldpos: LONGINT; size: LONGINT): INTEGER;
  910. PROCEDURE SameLock(lock1: FileLockPtr; lock2: FileLockPtr): INTEGER;
  911. PROCEDURE SetMode(fh: FileHandlePtr; mode: LONGINT): LONGINT;
  912. PROCEDURE ExAll(lock: FileLockPtr; buffer: ARRAY OF sys.BYTE; size: LONGINT; data: LONGINT; ctrl: ExAllControlPtr): BOOLEAN;
  913. PROCEDURE ReadLink(port: ProcessId; lock: FileLockPtr; path: ARRAY OF CHAR; buffer: ARRAY OF CHAR; size: LONGINT): LONGINT;
  914. PROCEDURE MakeLink(name: ARRAY OF CHAR; dest: LONGINT; soft: LONGINT): LONGINT;
  915. PROCEDURE ChangeMode(type: LONGINT; fh: FileHandlePtr; newmode: LONGINT): BOOLEAN;
  916. PROCEDURE ChangeModeLock(type: LONGINT; lock: FileLockPtr; newmode: LONGINT): BOOLEAN;
  917. PROCEDURE SetFileSize(fh: FileHandlePtr; pos: LONGINT; mode: LONGINT): LONGINT;
  918. PROCEDURE SetIoErr(result: LONGINT): LONGINT;
  919. PROCEDURE Fault(code: LONGINT; header: ARRAY OF CHAR; VAR buffer: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  920. PROCEDURE PrintFault(code: LONGINT; header: ARRAY OF CHAR): BOOLEAN;
  921. PROCEDURE ErrorReport(code: LONGINT; type: LONGINT; arg1: DeviceListAPtr; device: ProcessId): LONGINT;
  922. PROCEDURE ErrorReportLock(code: LONGINT; type: LONGINT; arg1: FileLockPtr; device: ProcessId): LONGINT;
  923. PROCEDURE ErrorReportFH(code: LONGINT; type: LONGINT; arg1: FileHandlePtr; device: ProcessId): LONGINT;
  924. PROCEDURE Requester(s1: ARRAY OF CHAR; s2: ARRAY OF CHAR; s3: ARRAY OF CHAR; flags: LONGSET): LONGINT;
  925. PROCEDURE Cli(): CommandLineInterfaceAPtr;
  926. PROCEDURE CreateNewProc(tags: ARRAY OF u.TagItem): ProcessPtr;
  927. PROCEDURE CreateNewProcTags(tag1..: u.Tag): ProcessPtr;
  928. PROCEDURE RunCommand(seg: e.BPTR; stack: LONGINT; paramptr: ARRAY OF CHAR; paramlen: LONGINT): LONGINT;
  929. PROCEDURE GetConsoleTask(): ProcessId;
  930. PROCEDURE SetConsoleTask(task: ProcessId): ProcessId;
  931. PROCEDURE GetFileSysTask(): ProcessId;
  932. PROCEDURE SetFileSysTask(task: ProcessId): ProcessId;
  933. PROCEDURE GetArgStr(): e.STRPTR;
  934. PROCEDURE SetArgStr(string: ARRAY OF CHAR): BOOLEAN;
  935. PROCEDURE FindCliProc(num: LONGINT): ProcessPtr;
  936. PROCEDURE MaxCli(): LONGINT;
  937. PROCEDURE SetCurrentDirName(name: ARRAY OF CHAR): BOOLEAN;
  938. PROCEDURE GetCurrentDirName(VAR buf: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  939. PROCEDURE SetProgramName(name: ARRAY OF CHAR): BOOLEAN;
  940. PROCEDURE GetProgramName(VAR buf: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  941. PROCEDURE SetPrompt(name: ARRAY OF CHAR): BOOLEAN;
  942. PROCEDURE GetPrompt(VAR buf: ARRAY OF CHAR; len: LONGINT): BOOLEAN;
  943. PROCEDURE SetProgramDir(lock: FileLockPtr): FileLockPtr;
  944. PROCEDURE GetProgramDir(): FileLockPtr;
  945. PROCEDURE System(command: ARRAY OF CHAR; tags: ARRAY OF u.TagItem): LONGINT;
  946. PROCEDURE SystemTags(command: ARRAY OF CHAR; tag1..: u.Tag): LONGINT;
  947. PROCEDURE AssignLock(name: ARRAY OF CHAR; lock: FileLockPtr): BOOLEAN;
  948. PROCEDURE AssignLate(name: ARRAY OF CHAR; path: ARRAY OF CHAR): BOOLEAN;
  949. PROCEDURE AssignPath(name: ARRAY OF CHAR; path: ARRAY OF CHAR): BOOLEAN;
  950. PROCEDURE AssignAdd(name: ARRAY OF CHAR; lock: FileLockPtr): BOOLEAN;
  951. PROCEDURE RemAssignList(name: ARRAY OF CHAR; lock: FileLockPtr): LONGINT;
  952. PROCEDURE GetDeviceProc(name: ARRAY OF CHAR; dp: DevProcPtr): DevProcPtr;
  953. PROCEDURE FreeDeviceProc(dp: DevProcPtr);
  954. PROCEDURE LockDosList(flags: LONGSET): DosListNodePtr;
  955. PROCEDURE UnLockDosList(flags: LONGSET);
  956. PROCEDURE AttemptLockDosList(flags: LONGSET): DosListNodePtr;
  957. PROCEDURE RemDosEntry(dlist: DosListNodePtr): BOOLEAN;
  958. PROCEDURE AddDosEntry(dlist: DosListNodePtr): DosListNodePtr;
  959. PROCEDURE FindDosEntry(dlist: DosListNodePtr; name: ARRAY OF CHAR; flags: LONGSET): DosListNodePtr;
  960. PROCEDURE NextDosEntry(dlist: DosListNodePtr; flags: LONGSET): DosListNodePtr;
  961. PROCEDURE MakeDosEntry(name: ARRAY OF CHAR; type: LONGINT): DosListNodePtr;
  962. PROCEDURE FreeDosEntry(dlist: DosListNodePtr);
  963. PROCEDURE IsFileSystem(name: ARRAY OF CHAR): BOOLEAN;
  964. PROCEDURE Format(filesystem: ARRAY OF CHAR; volumename: ARRAY OF CHAR; dostype: LONGINT): BOOLEAN;
  965. PROCEDURE Relabel(drive: ARRAY OF CHAR; newname: ARRAY OF CHAR): BOOLEAN;
  966. PROCEDURE Inhibit(name: ARRAY OF CHAR; onoff: LONGINT): BOOLEAN;
  967. PROCEDURE AddBuffers(name: ARRAY OF CHAR; number: LONGINT): LONGINT;
  968. PROCEDURE CompareDates(date1: Date; date2: Date): LONGINT;
  969. PROCEDURE DateToStr(VAR dt: DateTime): BOOLEAN;
  970. PROCEDURE StrToDate(VAR dt: DateTime): BOOLEAN;
  971. PROCEDURE InternalLoadSeg(fh: FileHandlePtr; table: e.BPTR; funcarray: e.APTR; VAR stack: LONGINT): e.BPTR;
  972. PROCEDURE InternalUnLoadSeg(seglist: e.BPTR; freefunc: e.PROC);
  973. PROCEDURE NewLoadSeg(file: ARRAY OF CHAR; tags: ARRAY OF u.TagItem): e.BPTR;
  974. PROCEDURE NewLoadSegTags(file: ARRAY OF CHAR; tags..: u.Tag): e.BPTR;
  975. PROCEDURE AddSegment(name: ARRAY OF CHAR; seg: e.BPTR; system: LONGINT): BOOLEAN;
  976. PROCEDURE FindSegment(name: ARRAY OF CHAR; seg: SegmentPtr; system: LONGINT): SegmentPtr;
  977. PROCEDURE RemSegment(seg: SegmentPtr): BOOLEAN;
  978. PROCEDURE CheckSignal(mask: LONGSET): LONGSET;
  979. PROCEDURE ReadArgs(template: ARRAY OF CHAR; VAR array: ARRAY OF sys.BYTE; args: RDArgsPtr): RDArgsPtr;
  980. PROCEDURE FindArg(keyword: ARRAY OF CHAR; template: ARRAY OF CHAR): LONGINT;
  981. PROCEDURE ReadItem(VAR name: ARRAY OF CHAR; maxchars: LONGINT; cSrc: CSourcePtr): LONGINT;
  982. PROCEDURE StrToLong(string: ARRAY OF CHAR; VAR value: LONGINT): LONGINT;
  983. PROCEDURE MatchFirst(pat: ARRAY OF CHAR; VAR anchor: AnchorPath): LONGINT;
  984. PROCEDURE MatchNext(VAR anchor: AnchorPath): LONGINT;
  985. PROCEDURE MatchEnd(VAR anchor: AnchorPath);
  986. PROCEDURE ParsePattern(pat: ARRAY OF CHAR; VAR buf: ARRAY OF CHAR; buflen: LONGINT): INTEGER;
  987. PROCEDURE MatchPattern(pat: ARRAY OF CHAR; str: ARRAY OF CHAR): BOOLEAN;
  988. PROCEDURE FreeArgs(args: RDArgsPtr);
  989. PROCEDURE FilePart(path: ARRAY OF CHAR): e.STRPTR;
  990. PROCEDURE PathPart(path: ARRAY OF CHAR): e.APTR;
  991. PROCEDURE AddPart(VAR dir: ARRAY OF CHAR; filename: ARRAY OF CHAR; size: LONGINT): BOOLEAN;
  992. PROCEDURE StartNotify(VAR notify: NotifyRequest): BOOLEAN;
  993. PROCEDURE EndNotify(VAR nofify: NotifyRequest);
  994. PROCEDURE SetVar(name: ARRAY OF CHAR; buffer: ARRAY OF CHAR; size: LONGINT; flags: LONGSET): BOOLEAN;
  995. PROCEDURE GetVar(name: ARRAY OF CHAR; VAR buffer: ARRAY OF CHAR; size: LONGINT; flags: LONGSET): LONGINT;
  996. PROCEDURE DeleteVar(name: ARRAY OF CHAR; flags: LONGSET): BOOLEAN;
  997. PROCEDURE FindVar(name: ARRAY OF CHAR; type: LONGSET): LocalVarPtr;
  998. PROCEDURE CliInit(VAR dp: DosPacket): LONGINT;
  999. PROCEDURE CliInitNewcli(VAR dp: DosPacket): LONGINT;
  1000. PROCEDURE CliInitRun(VAR dp: DosPacket): LONGINT;
  1001. PROCEDURE WriteChars(buf: ARRAY OF CHAR; buflen: LONGINT): LONGINT;
  1002. PROCEDURE PutStr(str: ARRAY OF CHAR): LONGINT;
  1003. PROCEDURE VPrintf(format: ARRAY OF CHAR; argarray: ARRAY OF sys.BYTE): LONGINT;
  1004. PROCEDURE Printf(format: ARRAY OF CHAR; arg1..: e.APTR): LONGINT;
  1005. PROCEDURE PrintF(format: ARRAY OF CHAR; arg1..: e.APTR);
  1006. PROCEDURE ParsePatternNoCase(pat: ARRAY OF CHAR; VAR buf: ARRAY OF CHAR; len: LONGINT): INTEGER;
  1007. PROCEDURE MatchPatternNoCase(pat: ARRAY OF CHAR; str: ARRAY OF CHAR): BOOLEAN;
  1008. PROCEDURE SameDevice(lock1: FileLockPtr; lock2: FileLockPtr): BOOLEAN;
  1009. PROCEDURE ReadChar(): CHAR;
  1010. PROCEDURE WriteChar(c: CHAR): LONGINT;
  1011. PROCEDURE UnReadChar(c: CHAR): LONGINT;
  1012. PROCEDURE ReadChars(VAR buf: ARRAY OF sys.BYTE; num: LONGINT): LONGINT;
  1013. PROCEDURE ReadLn(VAR buf: ARRAY OF CHAR; len: LONGINT): e.APTR;
  1014. PROCEDURE WriteStr(s: ARRAY OF CHAR): BOOLEAN;
  1015. PROCEDURE VWritef(format: ARRAY OF CHAR; argv: ARRAY OF sys.BYTE): LONGINT;
  1016. PROCEDURE ProcessIdToProcess(id: ProcessId): ProcessPtr;
  1017. PROCEDURE ProcessToProcessId(proc: ProcessPtr): ProcessId;
  1018.  
  1019. END Dos.
  1020.  
  1021.